package com.example.controller;

import com.example.bean.User;
import com.example.service.UserService;
import com.example.util.Ret;

import org.jsoup.helper.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@ResponseBody
@RequestMapping("/user")
public class UserController {
	
	@Autowired
	UserService userService;
	
	
    /**
     * 查询所有用户列表
     * 
     * @author: zhangwei
     * @date: 2021年1月15日
     */
    @GetMapping("/list")
    public Ret list(String query){
    	Ret ret;
    	try {
    		List<User> users;
        	if(!StringUtil.isBlank(query)) {
        		users = userService.selectUser(query);
        	}else {
        		users = userService.selectAllUser();
        	}
        	ret = Ret.ok("data", users);
		} catch (Exception e) {
			e.printStackTrace();
			ret = Ret.fail("", "获取用户信息出错，请刷新后重试！");
		}
    	return ret;
    }
    
    /**
     * 添加用户
     * 
     * @author: zhangwei
     * @date: 2021年1月15日
     */
    @RequestMapping("/saveUser")
    public Ret saveUser(User user) {
    	Ret ret;
    	try {
    		if(!userService.saveUser(user)) throw new Exception();
			ret = Ret.ok("msg", "添加用户成功！");
		} catch (Exception e) {
			e.printStackTrace();
			ret = Ret.fail("msg", "添加用户出错，请刷新后重试！");
		}
    	return ret;
    }
	
	/**
     * 删除用户
     * 
     * @author: zhangwei
     * @date: 2021年1月15日
     */
    @RequestMapping("/deleteUser")
	public Ret deleteUser(String ids) {
		Ret ret;
    	try {
    		if(!userService.deleteUser(ids)) throw new Exception();
			ret = Ret.ok("msg", "删除用户成功！");
		} catch (Exception e) {
			e.printStackTrace();
			ret = Ret.fail("msg", "删除用户出错，请刷新后重试！");
		}
    	return ret;
	}
    
    /**
     * 判断是否为数值
     *
     * @author: zhangwei
     * @date: 2020年8月26日
     * @return
     */
    public static Integer isStr2Num(String str) { 
        try {
            return Integer.parseInt(str);
        } catch (NumberFormatException e) {
            return 0;
        }
    }
}







